"""
定义
def 函数名(参数):
    语句
    (return)
"""
#没有返回值，没有参数的函数
# def add():
#     print(5+3)
#     print(0)
# add()

#没有返回值，有参数的函数
# def add(a,b):
#     print(a+b)
# add(5,3)

#有返回值，没有参数的函数
# def add():
#     print(10+10)
#     return 3+5
# a = add()
# print(a)

#有返回值，有参数的函数
# def add(a,b):
#     return a+b
# a = add(1,3)
# print(a)
# def add(a,b):
#     return a+b
# print(add(1,3))

#默认参数
# def add(a,b=3):
#     return a+b
# print(add(5))
# print(add(5,2))

#关键字参数
# print(add(b=4,a=5))



#不定长参数
"""
格式:
def 函数名([参数1，] *args, **kwargs):
    语句
    return 

"""

# def add(a,b,*args):
#     print(a)
#     print(b)
#     print(args)
# add(1,2,3,5,6)
#args返回一个元祖

# def add(a,b, *args, **kwargs):
#     print(a)
#     print(b)
#     print(args)
#     print(kwargs)
# add(1,2,3,4,5,6,m=32,n=42)

"""
变量的作用域 legb
"""

# a=1000
# def add(a,b):
#     a = 100
#     return a+b
# print(add(1,5))
# print(a)
"""
查找规则：
L先找函数内的区域，包括参数和局部变量
E外嵌套函数区域
G全局作用域
B内建作用域
"""

# a = 1000
# def add():
#     a = 10
#     print(a)
#     def abb():
#         a = 1
#         print(a)
#     abb()
# print(add())#None
# print(a)

#
# a = 100
# def add():
#     #global a
#     a = 5+a
#     print(a)
# add()


# a = 1000
# def add():
#     a = 100
#     def abb():
#         nonlocal a
#         a=a+100
#     abb()
#     print(a)
# add()
# print(a)



#匿名函数
"""
格式
lambda [arg1 [,arg2,arg3...]]:表达式
"""
# add = lambda a,b:a+b
# print(add(1,5))

#import
# import hanshu5_1
# a = hanshu5_1.add(5,4)
# print(a)

# import sys
#
# a = sys.argv[0]#文件名
# b = sys.argv[1]#第一个参数
#
# print(a)
# print(b)

# def add():
#     return 1000
# import hanshu5_1
#
# print(hanshu5_1.add(4,5))
# a = add()
# print(a)
